#pragma once
#include "awa2d.h"
class PTS2D :
	public AWA2D
{
public:

	PTS2D(void) : AWA2D(0,1)
	{
		sprintf(algorithmName,"PTS2D");
		maxCost = calculateMaxCost();
	}

	~PTS2D(void)
	{
	}

	/**
	 Calculate the maximum cost possible.
	 PTS cost function C*(h/C-g) is bounded by MAXG+1, assuming that the cost bound is always below MAXG.
	 **/
	virtual int calculateMaxCost()
	{
		return MAXG+1;
	}

	/**
	 * Here's the unique PTS evaluation function.
	 **/
	virtual int cost(int h, int g)
	{
		return (int)(goalUpperbound*((double)h)/(goalUpperbound-g));
	}
};

